/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.escom.administracion.dao.hibernate;

import com.escom.administracion.dao.UsuariosDAO;
import com.escom.administracionperfiles.hbm.dto.Usuarios;

import com.escom.cliente.exception.DAOException;
import com.escom.hibernate.template.AdminSoportHibernate;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.dao.support.DataAccessUtils;

/**
 *
 * @author yamil
 */
public class UsuarioDAOHBM extends AdminSoportHibernate implements UsuariosDAO,Serializable{



    @Override
    public void create(Usuarios usuarios) throws DAOException {

          save(usuarios);
        
    }

    @Override
    public void editar(Usuarios usuarios) throws DAOException {
        
       update(usuarios);
    }

    @Override
    public void remover(Usuarios usuarios) throws DAOException {


        delete(usuarios);

    }

    @Override
    public Usuarios find(Object id) throws DAOException {
        
        return find(id);
    }

    @Override
    public List<Usuarios> findAll() throws DAOException {
       
        return findAll(Usuarios.class);

    }

    @Override
    public List<Usuarios> findRange(int[] range) throws DAOException {
        List<Usuarios>  l=  findRange(range);
        
        return l;

    }

    @Override
    public int count() {
        return count();
    }

    @Override
    public Usuarios findDevice(String direccionIP) throws DAOException {
        // throw new UnsupportedOperationException("Not supported yet.");
         Usuarios usuarios=null;
         Session session=getSession();
         Criteria query = session.createCriteria(Usuarios.class);
        //DetachedCriteria query = DetachedCriteria.forClass(Usuarios.class);
         query.add(Restrictions.eq("direccionIp", direccionIP));
         query.setMaxResults(1);
        if(!query.list().isEmpty())
         usuarios=(Usuarios) query.list().get(0);
         session.close();
         return usuarios;
        

    }

}
